In a client-server environment, clients generally have user interface (UI) code to make calls to backend data systems or even intermediary systems, which directly access the back-end systems, for access to data. The client UI is often tightly coupled to the intermediary or backend systems. Consequently, when changes are made to the back end, the client UI needs updated or needs an entirely new client UI created.
Moreover, the ability to cache data associated with a backend system is often extremely dependent on the format, structure, and features of the back-end system. So, the client UI often has to include specifics about the backend systems in order to properly cache data from the backend system.
When the client UI lacks the ability to cache backend systems, the client experiences performance degradation, such that processing throughput diminishes or response times decrease. As a result, a user on the client may blame the service provider of the back-end system. So, the service provider may lose customers and business when client caching capabilities do not exist.
Furthermore, an enterprise, which supports multiple client UI's and their disparate environments, experience substantial support issues when backend systems are upgraded, changed, and/or swapped out for other different or replacement backend system. For example, consider an enterprise environment with 1,000 clients; each client has a specific client UI to access a Structured Query Language (SQL) backend database. When the backend database is switched or upgraded, the enterprise has to visit and update 1,000 client machines to install or cause to be installed an updated client UI.
Thus, it can be seen that improved techniques for accessing data are needed.